As the Internet continually expands, the amount of content available to users grows exponentially. This growth has rendered manual searching techniques virtually ineffective and has facilitated the growth of automated search agents, such as search engines. Search engines providing an index of a large set of documents offer clear efficiency advantages over directory listings and other formats requiring laborious user effort.
Profitability through user retention is a primary goal of any successful major search engine. In order to retain the maximum number of users, a search engine must provide, ideally, the most relevant results at all times. The task of maximizing efficiency of indexing and retrieval algorithms is a formidable one and spans across multiple disciplines and technologies. One particular method of optimizing search results is to provide facets in response to a search query. According to one embodiment, a facet is a generic term describing a mechanism that may be used to narrow a result set, which may be made on the basis of a term or phrase.
The current state of the art fails to fully exploit the power of facet-based refinement. Currently, the most substantial uses of facets comprise using a stock facet set for a given category of query. For example, a search for a disease or illness may return a generic set of facets (e.g., “symptoms”, “treatments”, etc.) for every disease or illness categorized by the search engine. These techniques suffer from a lack of sophistication, failing to both exploit the uniqueness of a search query and generate query and result set-specific facets. Thus, there is a need in the current state of the art for systems, methods and computer program products that provide query and result set-based facets for a search results page.